home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / a56 / examples / test_int.lis < prev    next >
File List  |  1995-04-27  |  8KB  |  268 lines

  1.               ; Interrupt-driven version of test-dac.a56.
  2.               ;
  3.               include "ioequ.inc"
  4.               
  5. P:0000                org     p:$0000
  6. P:0000 0C0040         jmp     <start
  7.               
  8. P:000C                org     p:$000C
  9. P:000C 0D0053 ssi     jsr     <ssi_int                        ;go handle SSI interrupt
  10.               
  11.               ; data areas
  12.               
  13. X:0000                org     x:$0
  14. X:0000 000000 i_left  dc      0                               ;left channel in
  15. X:0001 000000 i_right dc      0                               ;right channel in
  16.               
  17. P:0040                org     p:$40
  18. P:0040        start
  19.               
  20.               ; assign mode
  21.               
  22. P:0040 05F439         movec   #$0300,sr                       ;go to IPL 3
  23. P:0041 000300
  24.               
  25.               ; set up interrupts
  26.               
  27. P:0042 08F4BF         movep   #0<<13|3<<12|0<<10,x:m_ipr      ;put SSI at lev 3, others off
  28. P:0043 003000
  29.               
  30.               ; set system sample rate
  31.               
  32. P:0044 0AA406         bclr    #6,x:<<m_pbd                    ;32.55 kHz
  33. P:0045 0AA425         bset    #5,x:<<m_pbd                    ;
  34. P:0046 0AA404         bclr    #4,x:<<m_pbd                    ;
  35.               
  36.               ; set up SSI
  37.               
  38. P:0047 08F4AC         movep   #2<<13|1<<8,x:m_cra             ;16-bit word, 2 time slots
  39. P:0048 004100
  40. P:0049 08F4AD         movep   #0<<15|3<<12|1<<11|1<<9,x:m_crb ;sync,network,enable
  41. P:004A 003A00
  42.               
  43. P:004B 08F4A3         movep   #0,x:m_pcddr                    ;port C is SSI/SCI
  44. P:004C 000000
  45. P:004D 08F4A1         movep   #$1FF,x:m_pcc                   ;port C is SSI/SCI
  46. P:004E 0001FF
  47.               
  48.               ; enable interrupts and spin
  49.               
  50. P:004F 0D0052         jsr     <init                           ;initialize
  51. P:0050 0500B9         movec   #0,sr                           ;lower IPL
  52. P:0051 0C0051         jmp     <*
  53.               
  54. P:0052 0C0072 init    jmp     <init_sine
  55.               
  56. P:0053 0D0079 ssi_int jsr     <sine_int
  57. P:0054 000004         rti
  58.               
  59.               ; square wave
  60.               
  61. P:0055        square
  62. P:0055 56F400         move    #>-.1,a
  63. P:0056 F33333
  64.               
  65. P:0057        sq1
  66. P:0057 06C880         do      #200,sq0
  67. P:0058 00005E
  68. P:0059 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  69. P:005A 000059
  70. P:005B 08CE2F         movep   a,x:m_tx
  71. P:005C 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  72. P:005D 00005C
  73. P:005E 08CE2F         movep   a,x:m_tx
  74. P:005F        sq0     
  75. P:005F 200036         neg     a
  76. P:0060 0C0057         jmp     <sq1
  77.               
  78.               
  79.               ; triangle wave
  80.               
  81. P:0061        triangle
  82. P:0061 44F400         move    #>.010,x0
  83. P:0062 0147AE
  84. P:0063 56F400         move    #>-.9,a
  85. P:0064 8CCCCD
  86.               
  87. P:0065        l0      
  88. P:0065 06B480         do      #90*2,l1
  89. P:0066 00006D
  90. P:0067 200040         add     x0,a
  91. P:0068 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  92. P:0069 000068
  93. P:006A 08CE2F         movep   a,x:m_tx
  94. P:006B 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  95. P:006C 00006B
  96. P:006D 08CE2F         movep   a,x:m_tx
  97. P:006E        l1
  98. P:006E 208F00         move    x0,b
  99. P:006F 20003E         neg     b
  100. P:0070 21E400         move    b,x0
  101. P:0071 0C0065         jmp     <l0
  102.               
  103.               
  104.               ; sine wave
  105.               
  106. P:0072        init_sine
  107. P:0072 44F400         move    #>.050,x0                       ;oscillator freq
  108. P:0073 066666
  109. P:0074 56F400         move    #>-.209,a                       ;initial conditions
  110. P:0075 E53F7D
  111. P:0076 57F400         move    #>.2090,b                       ;
  112. P:0077 1AC083
  113. P:0078 00000C         rts
  114.               
  115. P:0079        sine_int
  116. P:0079 2000D2         mac     x0,y0,a
  117. P:007A 21C600         move    a,y0
  118. P:007B 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  119. P:007C 00007B
  120. P:007D 08CE2F         movep   a,x:m_tx                
  121. P:007E 2000DE         mac     -x0,y0,b
  122. P:007F 21E600         move    b,y0
  123. P:0080 0AAE86         jclr    #6,x:m_sr,*                     ;wait for transmitter ready
  124. P:0081 000080
  125. P:0082 08CF2F         movep   b,x:m_tx                
  126. P:0083 00000C         rts
  127.               
  128.                       end
  129.  
  130. Summary of psect usage
  131.  
  132.                  section seg base last top      used       avail    total
  133. -------------------------------------------------------------------------
  134.  
  135.  
  136. Symbol Table
  137. -------------------------------------
  138.          ssi_int 000053
  139.              ssi 00000C
  140.              sq0 00005F
  141.              sq1 000057
  142.           square 000055
  143.         triangle 000061
  144.        init_sine 000072
  145.             init 000052
  146.            start 000040
  147.         sine_int 000079
  148.           m_scl1 00000F
  149.           m_scl0 00000E
  150.            m_scl 00C000
  151.           m_ssl1 00000D
  152.           m_ssl0 00000C
  153.            m_ssl 003000
  154.           m_hpl1 00000B
  155.           m_hpl0 00000A
  156.            m_hpl 000C00
  157.           m_ibl2 000005
  158.           m_ibl1 000004
  159.           m_ibl0 000003
  160.            m_ibl 000038
  161.           m_ial2 000002
  162.           m_ial1 000001
  163.           m_ial0 000000
  164.            m_ial 000007
  165.            m_ipr 00FFFF
  166.            m_rdf 000007
  167.            m_tde 000006
  168.            m_roe 000005
  169.            m_tue 000004
  170.            m_rfs 000003
  171.            m_tfs 000002
  172.            m_if1 000001
  173.            m_if0 000000
  174.             m_if 000002
  175.           m_srie 00000F
  176.           m_stie 00000E
  177.            m_sre 00000D
  178.            m_ste 00000C
  179.            m_mod 00000B
  180.            m_gck 00000A
  181.            m_syn 000009
  182.            m_fsl 000008
  183.           m_sckd 000005
  184.           m_scd2 000004
  185.           m_scd1 000003
  186.           m_scd0 000002
  187.            m_scd 00001C
  188.            m_of1 000001
  189.            m_of0 000000
  190.             m_of 000003
  191.            m_psr 00000F
  192.            m_wl1 00000E
  193.            m_wl0 00000D
  194.             m_wl 006000
  195.             m_dc 001F00
  196.             m_pm 0000FF
  197.            m_tsr 00FFEE
  198.             m_sr 00FFEE
  199.            m_crb 00FFED
  200.            m_cra 00FFEC
  201.             m_tx 00FFEF
  202.             m_rx 00FFEF
  203.            m_tcm 00000F
  204.            m_rcm 00000E
  205.            m_scp 00000D
  206.            m_cod 00000C
  207.             m_cd 000FFF
  208.             m_r8 000007
  209.             m_fe 000006
  210.             m_pe 000005
  211.             m_or 000004
  212.           m_idle 000003
  213.           m_rdrf 000002
  214.           m_tdre 000001
  215.           m_trne 000000
  216.           m_tmie 00000D
  217.            m_tie 00000C
  218.            m_rie 00000B
  219.           m_ilie 00000A
  220.             m_te 000009
  221.             m_re 000008
  222.           m_woms 000007
  223.            m_rwi 000006
  224.           m_wake 000005
  225.            m_sbk 000004
  226.           m_wds2 000002
  227.           m_wds1 000001
  228.           m_wds0 000000
  229.            m_wds 000003
  230.           m_sccr 00FFF2
  231.            m_ssr 00FFF1
  232.            m_scr 00FFF0
  233.           m_stxa 00FFF3
  234.           m_stxh 00FFF6
  235.           m_stxm 00FFF5
  236.           m_stxl 00FFF4
  237.           m_srxh 00FFF6
  238.           m_srxm 00FFF5
  239.           m_srxl 00FFF4
  240.            m_dma 000007
  241.            m_hf1 000004
  242.            m_hf0 000003
  243.             m_hf 000018
  244.            m_hcp 000002
  245.           m_htde 000001
  246.           m_hrdf 000000
  247.            m_hf3 000004
  248.            m_hf2 000003
  249.           m_hcie 000002
  250.           m_htie 000001
  251.           m_hrie 000000
  252.            m_htx 00FFEB
  253.            m_hrx 00FFEB
  254.            m_hsr 00FFE9
  255.            m_hcr 00FFE8
  256.            m_pcd 00FFE5
  257.          m_pcddr 00FFE3
  258.            m_pcc 00FFE1
  259.            m_pbd 00FFE4
  260.          m_pbddr 00FFE2
  261.            m_pbc 00FFE0
  262.            m_bcr 00FFFE
  263.          i_right 000001
  264.           i_left 000000
  265.               l0 000065
  266.               l1 00006E
  267. errors=0
  268.